package com.grupobbva.iici.session;

import java.util.Iterator;
import java.util.Vector;

import com.grupobbva.iici.serializable.Perfil;

import com.grupobbva.iici.entity.Tiici_perfilLocal;
import com.grupobbva.iici.entity.Tiici_perfilKey;
import com.ibm.etools.service.locator.ServiceLocatorManager;
import com.grupobbva.iici.entity.Tiici_perfilLocalHome;

import java.util.Collection;

/**
 * Bean implementation class for Enterprise Bean: SessionPerfil
 */
public class SessionPerfilBean implements javax.ejb.SessionBean {
	private javax.ejb.SessionContext mySessionCtx;

	private final static String STATIC_Tiici_perfilLocalHome_REF_NAME = "ejb/Tiici_perfil";

	private final static Class STATIC_Tiici_perfilLocalHome_CLASS = Tiici_perfilLocalHome.class;

	/**
	 * getSessionContext
	 */
	public javax.ejb.SessionContext getSessionContext() {
		return mySessionCtx;
	}

	/**
	 * setSessionContext
	 */
	public void setSessionContext(javax.ejb.SessionContext ctx) {
		mySessionCtx = ctx;
	}

	/**
	 * ejbCreate
	 */
	public void ejbCreate() throws javax.ejb.CreateException {
	}

	/**
	 * ejbActivate
	 */
	public void ejbActivate() {
	}

	/**
	 * ejbPassivate
	 */
	public void ejbPassivate() {
	}

	/**
	 * ejbRemove
	 */
	public void ejbRemove() {
	}

	public Perfil findPerfil(String cod_perfil) {
		Perfil perfil = null;
		try {
			Tiici_perfilLocal aTiici_perfilLocal = find_Tiici_perfilLocalHome_findByPrimaryKey(new Tiici_perfilKey(
					cod_perfil));

			if (aTiici_perfilLocal != null) {
				perfil = new Perfil();
				perfil.setCodPerfil(aTiici_perfilLocal.getCod_perfil());
				perfil.setDesPerfil(aTiici_perfilLocal.getDes_perfil());
			}
		} catch (Exception e) {
			//logger.info("Error al traer data de la tabla Perfil");
		}
		return perfil;
	}

	public boolean updatePerfil(Perfil perfil) {

		try {
			Tiici_perfilLocal aTiici_perfilLocal = find_Tiici_perfilLocalHome_findByPrimaryKey(new Tiici_perfilKey(
					perfil.getCodPerfil()));

			if (aTiici_perfilLocal != null) {
				aTiici_perfilLocal.setDes_perfil(perfil.getDesPerfil());
				return true;
			}
		} catch (Exception e) {
			//logger.info("Error al actualizar tabla PermisoPerfil");
		}
		return false;
	}

	public Vector findAllPerfil(int flag) {
		Collection aCollection = find_Tiici_perfilLocalHome_findAllPerfil();
		Vector listaPerfil = null;
		if (aCollection != null && aCollection.size() > 0) {
			Iterator it = aCollection.iterator();
			listaPerfil = new Vector();

			while (it.hasNext()) {
				Tiici_perfilLocal local = (Tiici_perfilLocal) it.next();

				if (local != null) {
					 if(flag<0)
	                   {
							if (!local.getCod_perfil().equals("1")) {
								Perfil perfil = new Perfil();
								perfil.setCodPerfil(local.getCod_perfil());
								perfil.setDesPerfil(local.getDes_perfil());
								listaPerfil.add(perfil);
							}
	                   }
					 else{
					 	
					 	Perfil perfil = new Perfil();
						perfil.setCodPerfil(local.getCod_perfil());
						perfil.setDesPerfil(local.getDes_perfil());
						listaPerfil.add(perfil);
					 }
				}
			}
		}
		return listaPerfil;
	}

	public boolean deletePerfil(String cod_perfil) {

		try {
			Tiici_perfilLocal aTiicr_perfilLocal = find_Tiici_perfilLocalHome_findByPrimaryKey(new Tiici_perfilKey(
					cod_perfil));

			if (aTiicr_perfilLocal != null) {
				aTiicr_perfilLocal.remove();
				return true;
			}
		} catch (Exception e) {
			//logger.info("Error al eliminar tabla PermisoPerfil");
		}
		return false;
	}

	public boolean createPerfil(Perfil perfil) {
		Tiici_perfilLocal aTiicr_perfilLocal = createTiici_perfilLocal(perfil);
	
		return false;
	}
	protected Tiici_perfilLocal find_Tiici_perfilLocalHome_findByPrimaryKey(
			Tiici_perfilKey primaryKey) {
		Tiici_perfilLocalHome aTiici_perfilLocalHome = (Tiici_perfilLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_perfilLocalHome_REF_NAME,
						STATIC_Tiici_perfilLocalHome_CLASS);
		try {
			if (aTiici_perfilLocalHome != null)
				return aTiici_perfilLocalHome.findByPrimaryKey(primaryKey);
		} catch (javax.ejb.FinderException fe) {
			fe.printStackTrace();
		}
		return null;
	}
	protected Collection find_Tiici_perfilLocalHome_findAllPerfil() {
		Tiici_perfilLocalHome aTiici_perfilLocalHome = (Tiici_perfilLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_perfilLocalHome_REF_NAME,
						STATIC_Tiici_perfilLocalHome_CLASS);
		try {
			if (aTiici_perfilLocalHome != null)
				return aTiici_perfilLocalHome.findAllPerfil();
		} catch (javax.ejb.FinderException fe) {
			fe.printStackTrace();
		}
		return null;
	}
	protected Tiici_perfilLocal createTiici_perfilLocal(Perfil perfil) {
		Tiici_perfilLocalHome aTiici_perfilLocalHome = (Tiici_perfilLocalHome) ServiceLocatorManager
				.getLocalHome(STATIC_Tiici_perfilLocalHome_REF_NAME,
						STATIC_Tiici_perfilLocalHome_CLASS);
		try {
			if (aTiici_perfilLocalHome != null)
				return aTiici_perfilLocalHome.create(perfil);
		} catch (javax.ejb.CreateException ce) {
			ce.printStackTrace();
		}
		return null;
	}
}
